home *** CD-ROM | disk | FTP | other *** search
/ Programmer Plus 2007 / Programmer-Plus-2007.iso / Programming / Compilers / digital marsC compier / dm / include / conio.h < prev    next >
Encoding:
C/C++ Source or Header  |  2001-11-18  |  7.1 KB  |  315 lines

  1. // Copyright (C) 1986-2001 by Digital Mars.
  2. // All Rights Reserved
  3. // www.digitalmars.com
  4.  
  5. #if __SC__ || __RCC__
  6. #pragma once
  7. #endif
  8.  
  9. #ifndef __CONIO_H
  10. #define __CONIO_H 1
  11.  
  12. #if __cplusplus
  13. extern "C" {
  14. #endif
  15.  
  16. #if __OS2__ && __INTSIZE == 4
  17. #define __CLIB    __stdcall
  18. #else
  19. #define __CLIB    __cdecl
  20. #endif
  21.  
  22. /* Define _CRTAPI1 (for compatibility with the NT SDK) */
  23. #ifndef _CRTAPI1
  24. #define _CRTAPI1 __cdecl
  25. #endif
  26.  
  27.  
  28. /* Define _CRTAPI2 (for compatibility with the NT SDK) */
  29. #ifndef _CRTAPI2
  30. #define _CRTAPI2 __cdecl
  31. #endif
  32.  
  33. /* Define CRTIMP */
  34. #ifndef _CRTIMP
  35. #if defined(_WIN32) && defined(_DLL)
  36. #define _CRTIMP  __declspec(dllimport)
  37. #else
  38. #define _CRTIMP
  39. #endif
  40. #endif
  41.  
  42.  
  43.  
  44.  
  45. #include <stdio.h>
  46.  
  47. #define _KB_F1          59
  48. #define _KB_F2          60
  49. #define _KB_F3          61
  50. #define _KB_F4          62
  51. #define _KB_F5          63
  52. #define _KB_F6          64
  53. #define _KB_F7          65
  54. #define _KB_F8          66
  55. #define _KB_F9          67
  56. #define _KB_F10          68
  57.  
  58. #define _KB_HOME      71
  59. #define _KB_UP          72
  60. #define _KB_PGUP      73
  61. #define _KB_LEFT      75
  62. #define _KB_RIGHT     77
  63. #define _KB_END          79
  64. #define _KB_DOWN      80
  65. #define _KB_PGDN      81
  66. #define _KB_INS          82
  67. #define _KB_BACK_TAB  15
  68.  
  69. #define _KB_SF1          84
  70. #define _KB_SF2          85
  71. #define _KB_SF3          86
  72. #define _KB_SF4          87
  73. #define _KB_SF5          88
  74. #define _KB_SF6          89
  75. #define _KB_SF7          90
  76. #define _KB_SF8          91
  77. #define _KB_SF9          92
  78. #define _KB_SF10      93
  79.  
  80. #define _KB_CF1          94
  81. #define _KB_CF2          95
  82. #define _KB_CF3          96
  83. #define _KB_CF4          97
  84. #define _KB_CF5          98
  85. #define _KB_CF6          99
  86. #define _KB_CF7          100
  87. #define _KB_CF8          101
  88. #define _KB_CF9          102
  89. #define _KB_CF10      103
  90.  
  91. #define _KB_AF1          104
  92. #define _KB_AF2          105
  93. #define _KB_AF3          106
  94. #define _KB_AF4          107
  95. #define _KB_AF5          108
  96. #define _KB_AF6          109
  97. #define _KB_AF7          110
  98. #define _KB_AF8          111
  99. #define _KB_AF9          112
  100. #define _KB_AF10      113
  101.  
  102. #define _KB_DEL          83
  103. #define _KB_CPGUP     132
  104. #define _KB_CLEFT     115
  105. #define _KB_CRIGHT    116
  106. #define _KB_CEND      117
  107. #define _KB_CPGDN     118
  108. #define _KB_CHOME     119
  109. #define _KB_A1          120
  110. #define _KB_A2          121
  111. #define _KB_A3          122
  112. #define _KB_A4          123
  113. #define _KB_A5          124
  114. #define _KB_A6          125
  115. #define _KB_A7          126
  116. #define _KB_A8          127
  117. #define _KB_A9          128
  118. #define _KB_A0          129
  119. #define _KB_AMINUS    130
  120. #define _KB_APLUS     131
  121.  
  122. #if M_UNIX || M_XENIX
  123. extern char *ttyname(int file_handle);
  124.  
  125. typedef char _strmap_t[512];
  126. extern int __cdecl _kb_getmapstr(_strmap_t dest_map);
  127. extern int __cdecl _kb_setmapstr(_strmap_t new_map);
  128.  
  129. #define MIOC    ('k'<<8)
  130.  
  131. #define GIO_KEYMAP      (MIOC | 6)
  132. #define PIO_KEYMAP      (MIOC | 7)
  133.  
  134. #define    KBIO_SETMODE    (13|MIOC)
  135. #define    KBIO_GETMODE    (14|MIOC)
  136.  
  137. /* keyboard mode -- set by KBIO_{S | G}ETMODE, returned by KDGKBTYPE */
  138. #define    KBM_XT        0
  139. #define    KBM_AT        1
  140. #define    KBM_OTHER    2
  141.  
  142.  
  143. #define    KIOC        ('K' << 8)
  144. #define    KDDISPTYPE    (KIOC | 1)
  145. #define KDMAPDISP    (KIOC | 2)
  146. #define KDUNMAPDISP    (KIOC | 3)
  147. #define KDGKBMODE    (KIOC | 6)
  148. #define KDSKBMODE    (KIOC | 7)
  149. #define KBMKTONE    (KIOC | 8)
  150.  
  151. /* Used with KD{G | S}ETMODE */
  152. #define K_RAW    0
  153. #define K_XLATE    1
  154.  
  155. #define KDADDIO        (KIOC | 11)
  156. #define KDDELIO        (KIOC | 12)
  157.  
  158. #define KDDISPINFO    (KIOC | 18)
  159.  
  160. #define KIOCSOUND    (KIOC | 63)
  161. #define KDGKBTYPE    (KIOC | 64)
  162. #define KDGETLED    (KIOC | 65)
  163. #define KDSETLED    (KIOC | 66)
  164.  
  165. struct kd_dispinfo
  166. {    char *vaddr;
  167.     unsigned long physaddr;
  168.     unsigned long size;
  169. };
  170.  
  171.  
  172. struct kd_disparam
  173. {    long type;
  174. #define KD_MONO     1
  175. #define KD_HERCULES 2
  176. #define KD_CGA      3
  177. #define KD_EGA      4
  178. #define KD_VGA      5
  179.     char *addr;
  180. };
  181.  
  182. #define EGAIOC    ('E' << 8)
  183. #define EGAMODE (EGAIOC | 1)
  184. #define EGAIO    (EGAIOC | 2)
  185. #define EGA_GET (EGAIOC | 3)
  186. #define EGA_IOPRIVL (EGAIOC | 4)
  187.  
  188. #define VGAIOC    ('E' << 8)
  189. #define VGAMODE (VGAIOC | 65)
  190. #define VGAIO    (VGAIOC | 66)
  191. #define VGA_GET (VGAIOC | 67)
  192. #define VGA_IOPRIVL (VGAIOC | 68)
  193.  
  194. #define _KB_F1_STR    "\033[M"
  195. #define _KB_F2_STR    "\033[N"
  196. #define _KB_F3_STR    "\033[O"
  197. #define _KB_F4_STR    "\033[P"
  198. #define _KB_F5_STR    "\033[Q"
  199. #define _KB_F6_STR    "\033[R"
  200. #define _KB_F7_STR    "\033[S"
  201. #define _KB_F8_STR    "\033[T"
  202. #define _KB_F9_STR    "\033[U"
  203. #define _KB_F10_STR   "\033[V"
  204. #define _KB_F11_STR   "\033[W"
  205. #define _KB_F12_STR   "\033[X"
  206.  
  207. #define _KB_SF1_STR   "\033[Y"
  208. #define _KB_SF2_STR   "\033[Z"
  209. #define _KB_SF3_STR   "\033[a"
  210. #define _KB_SF4_STR   "\033[b"
  211. #define _KB_SF5_STR   "\033[c"
  212. #define _KB_SF6_STR   "\033[d"
  213. #define _KB_SF7_STR   "\033[e"
  214. #define _KB_SF8_STR   "\033[f"
  215. #define _KB_SF9_STR   "\033[g"
  216. #define _KB_SF10_STR  "\033[h"
  217. #define _KB_SF11_STR  "\033[i"
  218. #define _KB_SF12_STR  "\033[j"
  219.  
  220. #define _KB_CF1_STR   "\033[k"
  221. #define _KB_CF2_STR   "\033[l"
  222. #define _KB_CF3_STR   "\033[m"
  223. #define _KB_CF4_STR   "\033[n"
  224. #define _KB_CF5_STR   "\033[o"
  225. #define _KB_CF6_STR   "\033[p"
  226. #define _KB_CF7_STR   "\033[q"
  227. #define _KB_CF8_STR   "\033[r"
  228. #define _KB_CF9_STR   "\033[s"
  229. #define _KB_CF10_STR  "\033[t"
  230. #define _KB_CF11_STR  "\033[u"
  231. #define _KB_CF12_STR  "\033[v"
  232.  
  233. #define _KB_CSF1_STR  "\033[w"
  234. #define _KB_CSF2_STR  "\033[x"
  235. #define _KB_CSF3_STR  "\033[y"
  236. #define _KB_CSF4_STR  "\033[z"
  237. #define _KB_CSF5_STR  "\033[@"
  238. #define _KB_CSF6_STR  "\033[["
  239. #define _KB_CSF7_STR  "\033[\\"
  240. #define _KB_CSF8_STR  "\033[]"
  241. #define _KB_CSF9_STR  "\033[^"
  242. #define _KB_CSF10_STR "\033[_"
  243. #define _KB_CSF11_STR "\033[`"
  244. #define _KB_CSF12_STR "\033[{"
  245. #define _KB_HOME_STR  "\033[H"
  246.  
  247. #define _KB_UP_STR    "\033[A"
  248. #define _KB_PGUP_STR  "\033[I"
  249. #define _KB_MINUS_STR "-"
  250. #define _KB_LEFT_STR  "\033[D"
  251. #define _KB_5_STR     "\033[E"
  252. #define _KB_RIGHT_STR "\033[C"
  253. #define _KB_PLUS_STR  "+"
  254. #define _KB_END_STR   "\033[F"
  255. #define _KB_DOWN_STR  "\033[B"
  256. #define _KB_PGDN_STR  "\033[G"
  257. #define _KB_INS_STR   "\033[L"
  258.  
  259. #define _KB_5          76
  260. #define _KB_PLUS      78
  261. #define _KB_MINUS     74
  262.  
  263. #define _KB_CSF1      104
  264. #define _KB_CSF2      105
  265. #define _KB_CSF3      106
  266. #define _KB_CSF4      107
  267. #define _KB_CSF5      108
  268. #define _KB_CSF6      109
  269. #define _KB_CSF7      110
  270. #define _KB_CSF8      111
  271. #define _KB_CSF9      112
  272. #define _KB_CSF10     113
  273.  
  274. #define _KB_F11          133
  275. #define _KB_F12          134
  276. #define _KB_SF11      135
  277. #define _KB_SF12      136
  278. #define _KB_CF11      137
  279. #define _KB_CF12      138
  280. #define _KB_CSF11     139
  281. #define _KB_CSF12     140
  282.  
  283. #endif  /* M_UNIX || M_XENIX */
  284.  
  285. int        __cdecl    kbhit(void);
  286. int        __cdecl ungetch(int c);
  287. #define _kbhit kbhit
  288. #define _ungetch ungetch
  289.  
  290. #if !defined(_WINDOWS) || defined(_WIN32)
  291. int        __cdecl    getch(void);
  292. int        __cdecl getche(void);
  293. int             __cdecl putch(int);
  294. #define _getch getch
  295. #define _getche getche
  296. #define _putch putch
  297.  
  298. char * __CLIB _cgets(char *);
  299. int __CLIB _cprintf(const char *, ...);
  300. int __CLIB _cputs(const char *);
  301. int __CLIB _cscanf(const char *, ...);
  302.  
  303. #define cgets _cgets
  304. #define cprintf _cprintf
  305. #define cputs _cputs
  306. #define cscanf _cscanf
  307.  
  308. #endif /* _WINDOWS */
  309.  
  310. #if __cplusplus
  311. }
  312. #endif
  313.  
  314. #endif
  315.